package com.vic.mvc.prepare.design.proxy.jdk;

import org.junit.Test;
/**
 * JDK内置的Proxy动态代理可以在运行时动态生成字节码，而没必要针对每个类编写代理类。中间主要使用到了一个接口InvocationHandler与Proxy.newProxyInstance静态方法，参数说明如下：

 使用内置的Proxy实现动态代理有一个问题：被代理的类必须实现接口，未实现接口则没办法完成动态代理。

如果项目中有些类没有实现接口，则不应该为了实现动态代理而刻意去抽出一些没有实例意义的接口，通过cglib可以解决该问题。
 * @author VIC
 *
 */
public class Testa {
	IMath math = (IMath) new DynamicByJdk().getObject(new Math());
		
	@Test
	public void test(){
		int n1=100,n2=5;
		math.add(n1, n2);
		math.sub(n1, n2);
		math.mut(n1, n2);
		math.div(n1, n2);
	}
	
}
